YES(O(1),O(n^1)) We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict Trs: { merge(x, nil()) -> x , merge(nil(), y) -> y , merge(++(x, y), ++(u(), v())) -> ++(x, merge(y, ++(u(), v()))) , merge(++(x, y), ++(u(), v())) -> ++(u(), merge(++(x, y), v())) } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) We use the processor 'matrix interpretation of dimension 1' to orient following rules strictly. Trs: { merge(++(x, y), ++(u(), v())) -> ++(x, merge(y, ++(u(), v()))) } The induced complexity on above rules (modulo remaining rules) is YES(?,O(n^1)) . These rules are moved into the corresponding weak component(s). Sub-proof: ---------- TcT has computed the following constructor-based matrix interpretation satisfying not(EDA). [merge](x1, x2) = [2] x1 + [1] x2 + [0] [nil] = [0] [++](x1, x2) = [1] x1 + [1] x2 + [2] [u] = [0] [v] = [0] This order satisfies the following ordering constraints: [merge(x, nil())] = [2] x + [0] >= [1] x + [0] = [x] [merge(nil(), y)] = [1] y + [0] >= [1] y + [0] = [y] [merge(++(x, y), ++(u(), v()))] = [2] x + [2] y + [6] > [1] x + [2] y + [4] = [++(x, merge(y, ++(u(), v())))] [merge(++(x, y), ++(u(), v()))] = [2] x + [2] y + [6] >= [2] x + [2] y + [6] = [++(u(), merge(++(x, y), v()))] We return to the main proof. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict Trs: { merge(x, nil()) -> x , merge(nil(), y) -> y , merge(++(x, y), ++(u(), v())) -> ++(u(), merge(++(x, y), v())) } Weak Trs: { merge(++(x, y), ++(u(), v())) -> ++(x, merge(y, ++(u(), v()))) } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) We use the processor 'matrix interpretation of dimension 1' to orient following rules strictly. Trs: { merge(++(x, y), ++(u(), v())) -> ++(u(), merge(++(x, y), v())) } The induced complexity on above rules (modulo remaining rules) is YES(?,O(n^1)) . These rules are moved into the corresponding weak component(s). Sub-proof: ---------- TcT has computed the following constructor-based matrix interpretation satisfying not(EDA). [merge](x1, x2) = [1] x1 + [3] x2 + [0] [nil] = [0] [++](x1, x2) = [1] x1 + [1] x2 + [1] [u] = [0] [v] = [0] This order satisfies the following ordering constraints: [merge(x, nil())] = [1] x + [0] >= [1] x + [0] = [x] [merge(nil(), y)] = [3] y + [0] >= [1] y + [0] = [y] [merge(++(x, y), ++(u(), v()))] = [1] x + [1] y + [4] >= [1] x + [1] y + [4] = [++(x, merge(y, ++(u(), v())))] [merge(++(x, y), ++(u(), v()))] = [1] x + [1] y + [4] > [1] x + [1] y + [2] = [++(u(), merge(++(x, y), v()))] We return to the main proof. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^1)). Strict Trs: { merge(x, nil()) -> x , merge(nil(), y) -> y } Weak Trs: { merge(++(x, y), ++(u(), v())) -> ++(x, merge(y, ++(u(), v()))) , merge(++(x, y), ++(u(), v())) -> ++(u(), merge(++(x, y), v())) } Obligation: innermost runtime complexity Answer: YES(O(1),O(n^1)) We use the processor 'matrix interpretation of dimension 1' to orient following rules strictly. Trs: { merge(x, nil()) -> x , merge(nil(), y) -> y } The induced complexity on above rules (modulo remaining rules) is YES(?,O(n^1)) . These rules are moved into the corresponding weak component(s). Sub-proof: ---------- TcT has computed the following constructor-based matrix interpretation satisfying not(EDA). [merge](x1, x2) = [2] x1 + [2] x2 + [1] [nil] = [0] [++](x1, x2) = [1] x1 + [1] x2 + [0] [u] = [0] [v] = [0] This order satisfies the following ordering constraints: [merge(x, nil())] = [2] x + [1] > [1] x + [0] = [x] [merge(nil(), y)] = [2] y + [1] > [1] y + [0] = [y] [merge(++(x, y), ++(u(), v()))] = [2] x + [2] y + [1] >= [1] x + [2] y + [1] = [++(x, merge(y, ++(u(), v())))] [merge(++(x, y), ++(u(), v()))] = [2] x + [2] y + [1] >= [2] x + [2] y + [1] = [++(u(), merge(++(x, y), v()))] We return to the main proof. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Weak Trs: { merge(x, nil()) -> x , merge(nil(), y) -> y , merge(++(x, y), ++(u(), v())) -> ++(x, merge(y, ++(u(), v()))) , merge(++(x, y), ++(u(), v())) -> ++(u(), merge(++(x, y), v())) } Obligation: innermost runtime complexity Answer: YES(O(1),O(1)) Empty rules are trivially bounded Hurray, we answered YES(O(1),O(n^1))